package com.xuecheng.api.cms;

import com.xuecheng.framework.domain.cms.CmsPage;
import com.xuecheng.framework.domain.cms.request.QueryPageRequest;
import com.xuecheng.framework.domain.cms.response.CmsPageResult;
import com.xuecheng.framework.model.response.QueryResponseResult;
import com.xuecheng.framework.model.response.ResponseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

/**
 * @author gongfy   sunxli
 * @date 2020/5/18 10:53
 * @Description Api工程单独定义接口  此接口编写后会在CMS服务工程编写Controller类实现此接口
 * 为什么要在api中定义接口不在cms服务中定义接口？
 * 作用：1、接口集中管理
 *      2、Api工程的接口将作为各微服务远程调用（基于接口）使用。 本来a调用b接口需要依赖b，现在统一在api中管理，只用依赖api中就可以
 *      3.如果不用springMVC则利于维护
 */
@Api(value="cms页面管理接口",description = "cms页面管理接口，提供页面的增、删、改、查")
public interface CmsPageControllerApi {

  @ApiOperation("分页查询页面列表")
  @ApiImplicitParams({
          @ApiImplicitParam(name = "page", value = "页码", required = true, paramType = "path", dataType = "int"),
          @ApiImplicitParam(name = "size", value = "每页记录数", required = true, paramType = "path", dataType = "int")})
  public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest);

  @ApiOperation("页面新增")
  public CmsPageResult add(CmsPage cmsPage);

  @ApiOperation("根据id查询页面")
  public CmsPage findCmsPageById(String pageid);

  @ApiOperation("页面修改")
  public CmsPageResult modifyCmspage(CmsPage cmsPage,String pageid);

  @ApiOperation("页面删除")
  public ResponseResult deleteById(String pageid);

  @ApiOperation("页面发布")
  public ResponseResult pagePublish(String pageid);

  @ApiOperation("保存页面")
  public CmsPageResult savePage(CmsPage cmsPage);
}
